package simple.array;

/**
 * @Desc <a href="https://leetcode.cn/problems/valid-boomerang/">1037. 有效的回旋镖</a>
 * 给定一个数组 points ，其中 points[i] = [xi, yi] 表示 X-Y 平面上的一个点，如果这些点构成一个 回旋镖 则返回 true 。
 * 回旋镖 定义为一组三个点，这些点 各不相同 且 不在一条直线上 。
 * 示例 1：
 *   输入：points = [[1,1],[2,3],[3,2]]
 *   输出：true
 * 示例 2：
 *   输入：points = [[1,1],[2,2],[3,3]]
 *   输出：false
 * 提示：
 *   points.length == 3
 *   points[i].length == 2
 *   0 <= xi, yi <= 100
 * @Date 2023/7/5 21:53
 * @Created by 刘学松
 */
public class 有效的回旋镖 {
    public static boolean isBoomerang(int[][] points) {
        // 「三点各不相同且不在一条直线上」等价于「这两个向量的叉乘结果不为零」
        int[] arr1 = {points[1][0] - points[0][0], points[1][1] - points[0][1]};
        int[] arr2 = {points[1][0] - points[2][0], points[1][1] - points[2][1]};
        return arr1[0] * arr2[1] != arr1[1] * arr2[0];
    }
}
